package com.pro.mapper;

import com.pro.pojo.JsBeforeUser;
import com.pro.pojo.JsCourse;
import com.pro.pojo.JsProduct;
import com.pro.pojo.JsUser;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

import java.util.List;
import java.util.Map;

/**
 * @author 李佳豪
 * @date 2022/1/7 8:56
 * 首页功能
 */
public interface HomePageMapper {
/*管理员*/
    /**
     * @author 李佳豪
     * 管理员上架商品总数
     * @Date 2022.1.20
     */
    Integer TotalAmountOfGoodsOnShelf(@Param("type") Integer type,@Param("result")Integer result,@Param("productSate")Integer productSate);
    /**
     * @author 李佳豪
     * 管理员上传视频总数
     * @Date 2022.1.20
     */
    Integer TotalVideoOverhead(@Param("courseCstatus") Integer courseCstatus,@Param("courseStatus") Integer courseStatus);
    /**
     * @author 李佳豪
     * 管理员发布微圈总数
     * @Date 2022.1.20
     */
    Integer TotalNumberOfPublishedMicrocircles(@Param("details") Integer details,@Param("show") Integer show);
    /**
     * @author 李佳豪
     * 管理员已完成订单总数
     * @Date 2022.1.20
     */
    Integer TotalNumberOfCompletedOrders(Integer orderStatus);
    /**
     * @author 李佳豪
     * 商品待审核信息
     * @Date 2022.1.20
     */
    Integer TotalProductStayExamine(@Param("type") Integer type,@Param("result") Integer result);
    /**
     * @author 李佳豪
     * 课程待审核信息
     * @Date 2022.1.20
     */
    Integer TotalCourseStayExamine(@Param("type") Integer type,@Param("result") Integer result);
    /**
     * @author 李佳豪
     * 微圈待审核信息
     * @Date 2022.1.20
     */
    Integer TotalMicroCircleStayExamine(@Param("type") Integer type,@Param("result") Integer result);
    /**
     * @author 李佳豪
     * 退订待处理信息
     * @Date 2022.1.20
     */
    Integer TotalUnsubscribeStayExamine(Integer orderStatus);

/*用户总览*/
    /**
     * @author 李佳豪
     * 获取用户注册时间信息
     */
    List<JsBeforeUser> getAllUsersRegistrationTime();

/*echarts*/
    /**
     * @author 李佳豪
     * 首页获取课程创建时间
     */
    List<JsCourse> getAllCreateDate(@Param("courseStatus") Integer courseStatus,@Param("courseCstatus") Integer courseCstatus);
    /**
     * @author 李佳豪
     * 首页获取商品创建时间
     */
    List<JsProduct> getAllProductCreateDate(Integer productSate);
    /**
     * @author 李佳豪
     * 首页获取用户创建时间
     */
    List<JsBeforeUser> getAllUserCreateDate();
    /**
     * @author 李佳豪
     * @Date 2022.1.17 15.14
     * 修改用户头像及密码
     */
    boolean UpdateUser(JsUser param);
    /**
     * @author 李佳豪
     * @Date 2022.1.19 13：07
     * 查看MySQL当前版本号
     */
    String getMysqlEdition();
    /**
     * @author 李佳豪
     * @Date 2022.1.22 13：26
     * 查看商品销量总数
     */
    Integer getTotalProductSales(Integer orderType);
    /**
     * @author 李佳豪
     * @Date 2022.1.22 13：26
     * 查看商品收藏总数
     */
    Integer getTotalVideoCollection(Integer collectionType);
    /**
     * @author 李佳豪
     * @Date 2022.1.22 13：26
     * 查看完成订单总数
     */
    Integer getTotalNumberOfCompletedOrders(@Param("orderType") Integer orderType);
    /**
     * @author 李佳豪
     * @Date 2022.1.22 13：26
     * 查看所有订单总数
     */
    Integer getTotalOrders();
    /**
     * @author 李佳豪
     * @Date 2022.1.23 15：09
     * 查看所有课程浏览总数
     */
    Integer getCourseBrowseTotal();
    /**
     * @author 李佳豪
     * @Date 2022.1.23 15：09
     * 查看所有课程点赞总数
     */
    Integer getTotalVideoLikes();
    /**
     * @author 李佳豪
     * @Date 2022.1.23 15：09
     * 查看微圈点赞总数
     */
    Integer getMicroCircleFabulousCount(@Param("details") Integer details,@Param("show") Integer show);

    /**
     * @author 李佳豪
     * @Date 2022.1.24 21:11
     * 查看前端用户数量
     */
    Integer getTotalWebUser(Integer status);
    /**
     * @author 李佳豪
     * @Date 2022.1.24 21:11
     * 查看后端用户数量
     */
    Integer getTotalBackstageUser(Integer status);
    /**
     * @author 李佳豪
     * @Date 2022.1.24 21:11
     * 查询创作者待审核数量
     */
    Integer getCreatorExmaine(Integer result);
    /**
     * @author 李佳豪
     * @Date 2022.1.27 17:34
     * 查询进思用户数量
     */
    Integer getTotalJinsiUser();
    /**
     * @author 李佳豪
     * @Date 2022.1.27 17:34
     * 查询用户权限等级
     */
    Integer getUserGrade(Integer userId);


}
